<template>
  <div id="app">
    <router-view v-if="isRouterAlive"></router-view>
  </div>
</template>

<script>
export default {
   name: "App",
  provide() {
    //父组件中通过provide来提供变量，在子组件中通过inject来注入变量。
    return {
       reload: this.reload,
    };
  },
  data() {
    return {
      isRouterAlive: true, //控制视图是否显示的变量
    };
  },
  created() {
    // 初始化用户信息
    this.isLogo();
  },
  methods: {
    //页面刷新时，判断是否有用户信息保存在session
    isLogo() {
      //若session有信息，取出来保存到store
      if (sessionStorage.getItem("userInfo")) {
        this.$store.commit(
          "userStatus",
          JSON.parse(sessionStorage.getItem("userInfo"))
        );
      } else {
        //若无session信息，跳到登录界面
        this.$router.push("/login");
      }
    },
    reload() {
      this.isRouterAlive = false; //先关闭，
      this.$nextTick(function () {
        this.isRouterAlive = true; //再打开
      });
    },
  },
};
</script>